Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updates to Reference Value and Endorsed Values #170

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

yogeshbdeshpande
Copy link
Collaborator

@yogeshbdeshpande yogeshbdeshpande commented Oct 24, 2023

Added relevant issue #171

Signed-off-by: Yogesh Deshpande <[email protected]>
#### X-Triples {#sec-x-triple-rec}
For the Supply Chain Systems where only incremental updates are possible, it is essential that obsolete or security vulnerable Reference Values and/or Endorsed Values must be removed using x-ref-endor-triple-record.

The CCDL below, provides schema for remving Reference Values and/or Endorsed Values from a Verifier.
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The CCDL below, provides schema for remving Reference Values and/or Endorsed Values from a Verifier.
The CCDL below, provides a schema for removing Reference Values and/or Endorsed Values from a Verifier.

@@ -0,0 +1,12 @@
update-triple-record = [
&(subj: 0) => $subject-type-choice
& (mval: 1) => [+measurement-values-map] ; object of the update
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why call it mval if it means "object"?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

because that is triple speak? If not, that's a good question.

$subject-type-choice /= [+environment-map] ; One or more environment that comprise the subject
$subject-type-choice /= [+stateful-environment-record] ; One or more stateful-environments that comprise the subject

$update-action-type-choice /= add ; The new triple causes a new revision identified by measurement-values-map , to be simply updated/added in Verifier
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The semantics are unclear. Does it mean if the sub statement (with authority authorized-by) matches a statement in the ACS, the object mval modifies the object statements for all the triples named in the sub statement?

Note: If the goal is to replace the triple that matched, including the parts used for matching, then the object seems insufficient (as it needs to replace the environment / stateful environment). Alternatively, a two-step approach could work, where an x-triple removes the triple to be updated and a new triple is added. Note, this operation should be done atomically since the matching condition in the x-triple represents the state / justification for adding the updated triple.
I'm generally concerned that applying an update will cause indeterminate behavior depending on the sequence in which these triples are applied because endorsement triples also depend on the ACS state. These triples might have to be re-processed in order to get the intended (correct) stateful outcome.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@nedmsmith : The goal of $update-action-type-choice /= add is NOT to remove anything from the Verifier, but to increment.

However, as we are using a common update-triple for any Reference Value and Endorsed Value we have two options:

(a) Specify what is that is been updated by specifying the type - RefVal/EndVal/CondEnd pertaining to the Subject

(b) Rely on the Supply Chain to exactly issue the same triple (like RefVal Triple) OR an EndVal Triple with the new &(action: 3) => $update-action-type-choice and
indicate whether it is an ADD or a REPLACE

Choice:
Option-a: Verifier matches subj and based on the type attaches the new triple to the same subj

Option - b: is Neater but implies modifying every triple where we need an update, to set the action

I would request we focus on the intent of the action and then agree whether to go with option a or option b

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would request we focus on the intent of the action and then agree whether to go with option a or option b

Maybe this part of the discussion should happen in issue #171 since the conclusion would affect the PR definition.

@nedmsmith
Copy link
Collaborator

I created issue #194 that makes suggestions for how to approach updates. The x-triples section should probably be moved to a new top level section dealing with update processing. Some of the update processing goals are not unique to x-triples, hence can be described in a way that applies broadly to updates regardless of which update vehicle is used.

@yogeshbdeshpande yogeshbdeshpande changed the title Updates Updates to Reference Value and Endorsed Values Apr 3, 2024
@nedmsmith
Copy link
Collaborator

nedmsmith commented May 7, 2024

Given it is a non-goal for CoRIM to bias a particular update mechanism / process, we should disposition this PR the same as other approaches by excluding it from the "base" spec. It could be defined behind a profile, or as an extension to the base by a companion I-D.

I suggest we label this "wontfix".

@yogeshbdeshpande yogeshbdeshpande added the For-next-release WIll only be addressed after first publish of CoRIM label Aug 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
For-next-release WIll only be addressed after first publish of CoRIM
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants